package com.wjw.java.games._draw;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.io.IOException;

/**
 * 关于像素px的理解：跟屏幕的分辨率有关
 * 如：800px * 600px = 480000px
 * 表示1行有800个点,每一个点都是一个px,共600行
 * -----------------------------------------------------
 * 画板类：画图形就在画板上画
 * Panel：理解为画板
 * Graphics：理解为画笔
 */
public class Panel extends JPanel{

    /**
     * 绘图方法,什么时候被调用：
     * 1.当组件第一次在屏幕上显示时
     * 2.窗口最大、最小化时
     * 3.窗口大小发生变化时
     * 4.repaint函数被调用时(刷新组件外观的函数)
     * @param g
     */
    @Override
    public void paint(Graphics g) {
        super.paint(g);//调用父类方法完成初始化
        System.out.println("paint被调用了！！！");
        //1.画一个圆形
        g.drawOval(10,10,50,50);
        //2.填充圆形
        g.setColor(Color.BLUE);
        g.fillOval(100,100,200,200);
        //3.画一条直线,直线由两个点的坐标确定
        g.drawLine(20,80,60,80);
        //4.画矩形边框
        g.drawRect(30,30,90,90);
        //5.画填充矩形边框
        g.setColor(Color.PINK);//设置填充颜色
        g.fillRect(60,60,100,100);
        //6.画图片
        File file = new File("F:\\aaa.jpg");
        try {
            Image image = ImageIO.read(file);
            g.drawImage(image,300,300,198,198,this);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //7.写字
        g.setColor(Color.magenta);
        g.setFont(new Font("宋体",Font.BOLD,30));//字体
        g.drawString("你好啊！！！",310,310);
    }
}
